package com.springboot.middleware.middleware_grab_red_envelopes.server.service;

import com.springboot.middleware.middleware_grab_red_envelopes.server.dto.RedPacketDto;

import java.math.BigDecimal;
import java.util.List;

/**
 * 红包业务逻辑处理过程数据记录接口-异步实现
 * 主要用于将发红包时红包的相关信息与抢红包时用户强盗的红包金额等信息记入数据库
 */
public interface RedService {

    /**
     * 记录发红包时红包的唯一标识码,随机金额列表和个数等信息
     *
     * @param dto   红包dto,存在用户Id,红包个数和总金额信息
     * @param redId 存在红包的唯一标识码
     * @param list  随机金额列表
     */
    void recordRedPacket(RedPacketDto dto, String redId, List<Integer> list) throws Exception;

    /**
     * 记录抢红包时用户抢到的红包金额等信息
     *
     * @param userId 用户id
     * @param redId  红包id
     * @param amount 红包金额
     */
    void recordRobRedPacket(Integer userId, String redId, BigDecimal amount) throws Exception;
}
